package com.escool.model;

// Generated Dec 20, 2012 2:22:19 AM by Hibernate Tools 3.4.0.CR1

import java.util.HashSet;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 * TbExpedienteHasMateria generated by hbm2java
 */
@Entity
@Table(name = "tb_expediente_has_materia")
public class TbExpedienteHasMateria implements java.io.Serializable {

	private Integer idExpedienteHasMateria;
	private TbSedeSeccionHasMateria tbSedeSeccionHasMateria;
	private TbExpediente tbExpediente;
	private char status;
	private Set<TbExpedienteMateriaHasRotacionesActividad> tbExpedienteMateriaHasRotacionesActividads = new HashSet<TbExpedienteMateriaHasRotacionesActividad>(
			0);

	public TbExpedienteHasMateria() {
	}

	public TbExpedienteHasMateria(
			TbSedeSeccionHasMateria tbSedeSeccionHasMateria,
			TbExpediente tbExpediente, char status) {
		this.tbSedeSeccionHasMateria = tbSedeSeccionHasMateria;
		this.tbExpediente = tbExpediente;
		this.status = status;
	}

	public TbExpedienteHasMateria(
			TbSedeSeccionHasMateria tbSedeSeccionHasMateria,
			TbExpediente tbExpediente,
			char status,
			Set<TbExpedienteMateriaHasRotacionesActividad> tbExpedienteMateriaHasRotacionesActividads) {
		this.tbSedeSeccionHasMateria = tbSedeSeccionHasMateria;
		this.tbExpediente = tbExpediente;
		this.status = status;
		this.tbExpedienteMateriaHasRotacionesActividads = tbExpedienteMateriaHasRotacionesActividads;
	}

	@Id
	@GeneratedValue(strategy = IDENTITY)
	@Column(name = "id_expediente_has_materia", unique = true, nullable = false)
	public Integer getIdExpedienteHasMateria() {
		return this.idExpedienteHasMateria;
	}

	public void setIdExpedienteHasMateria(Integer idExpedienteHasMateria) {
		this.idExpedienteHasMateria = idExpedienteHasMateria;
	}

	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn(name = "tb_sede_seccion_has_materia_idsede_seccion_has_materia", nullable = false)
	public TbSedeSeccionHasMateria getTbSedeSeccionHasMateria() {
		return this.tbSedeSeccionHasMateria;
	}

	public void setTbSedeSeccionHasMateria(
			TbSedeSeccionHasMateria tbSedeSeccionHasMateria) {
		this.tbSedeSeccionHasMateria = tbSedeSeccionHasMateria;
	}

	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn(name = "tb_expediente_id_expediente", nullable = false)
	public TbExpediente getTbExpediente() {
		return this.tbExpediente;
	}

	public void setTbExpediente(TbExpediente tbExpediente) {
		this.tbExpediente = tbExpediente;
	}

	@Column(name = "status", nullable = false, length = 1)
	public char getStatus() {
		return this.status;
	}

	public void setStatus(char status) {
		this.status = status;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "tbExpedienteHasMateria")
	public Set<TbExpedienteMateriaHasRotacionesActividad> getTbExpedienteMateriaHasRotacionesActividads() {
		return this.tbExpedienteMateriaHasRotacionesActividads;
	}

	public void setTbExpedienteMateriaHasRotacionesActividads(
			Set<TbExpedienteMateriaHasRotacionesActividad> tbExpedienteMateriaHasRotacionesActividads) {
		this.tbExpedienteMateriaHasRotacionesActividads = tbExpedienteMateriaHasRotacionesActividads;
	}

}
